#ifndef GAMEROOM_H
#define GAMEROOM_H

#include <QWidget>
#include<QSound>

enum class SnakeDirect
{
    UP=0,
    DOWN,
    LEFT,
    RIGHT
};

class GameRoom : public QWidget
{
    Q_OBJECT
public:
    explicit GameRoom(QWidget *parent = nullptr);

    void paintEvent(QPaintEvent *event);

    void moveUp();//蛇向上移动
    void moveDown();//蛇向下移动
    void moveLeft();//蛇向左移动
    void moveRight();//蛇向右移动

    bool checkFail();//判断游戏是否结束，结束条件就是自己撞到自己

    void createnewfood();//创建食物

    void setMoveSpeed(int speed)
    {
        movespeed=speed;
    }


private:
    const int SnakeBodyWidth=20;//蛇身体节点的宽度
    const int SnakeBodyHeight=20;//蛇身体节点的高度
    const int SnakeMoveSpeed=200;//蛇的移动速度,默认速度

    QList<QRectF> snakelist;//表示蛇的链表，QRectF是个矩形
    QRectF foodRect;//食物节点

    QTimer *timer;//定时器
    SnakeDirect moveDirect=SnakeDirect::UP;//蛇的默认移动方向是向上的

    bool isGameStart=false;//表示游戏是否开始

    QSound* sound;//蛇移动时的背景音乐

    int movespeed=SnakeMoveSpeed;//模式难度，就是蛇的速度
};

#endif // GAMEROOM_H
